In various communication systems, information to be transmitted is encoded with an Error Correcting Code (ECC), such as, for example, a convolutional ECC. At the receiver, a suitable decoder decodes the ECC to recover the information. Decoding a convolutional ECC can be done, for example, using a Viterbi decoder that implements the Viterbi algorithm. The Viterbi algorithm is described, for example, in “The Viterbi Algorithm,” Proceedings of the IEEE, March, 1973, Volume 61, Issue 3, pages 268-278, which is incorporated herein by reference.
Some ECC decoders are designed to accept side information, which may improve the decoding accuracy of the ECC. For example, a Viterbi decoder that accepts side information regarding corrupted symbols (erasures) is described, for example, in “Joint erasure marking and Viterbi decoding algorithm for unknown impulsive noise channels,” IEEE transactions on wireless communications, volume 7, Issue: 9, Sep. 19, 2008, SEP, pages 3407-3416, which is incorporated herein by reference.